package br.com.cogerh.sidec.model;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import org.hibernate.annotations.Cascade;

import com.sun.istack.internal.NotNull;
import com.sun.istack.internal.Nullable;

@Entity
@Table(schema = "adm")
public class Gerencia {

	@Id
	@GeneratedValue
	@Column(name = "id_gerencia")
	private Integer id;
	private String nome;
	@Nullable
	private String sigla;

	@OneToOne
	@JoinColumn(name = "id_gerente")
	private Pessoa gerente;
	
	@ManyToOne
	@JoinColumn(name = "id_diretoria")
	private Diretoria diretoria;
	@OneToMany(fetch=FetchType.EAGER,cascade = CascadeType.DETACH)
	@JoinTable(name = "pessoas_gerencia",schema ="adm")
	private List<Pessoa> pessoas;
	
	
	
	public Gerencia() {
	pessoas = new ArrayList<Pessoa>();
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getSigla() {
		return sigla;
	}

	public void setSigla(String sigla) {
		this.sigla = sigla;
	}

	public Diretoria getDiretoria() {
		return diretoria;
	}

	public void setDiretoria(Diretoria diretoria) {
		this.diretoria = diretoria;
	}

	public Pessoa getGerente() {
		return gerente;
	}

	public void setGerente(Pessoa gerente) {
		this.gerente = gerente;
	}

	public List<Pessoa> getPessoas() {
		return pessoas;
	}

	public void setPessoas(List<Pessoa> pessoas) {
		this.pessoas = pessoas;
	}

	
	
	

	
	

}
